package com.shuke.medical.insure.model.bo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/***
 * @title ChsRegister
 * @description： 门诊挂号登记
 * @author woo hua
 * @version 1.0.0
 * @create 2023/4/3 15:16
 **/
@Data
@ApiModel("门诊挂号登记")
public class ChsMdRegister {

    public static final String MD_TRT_INFO = "mdtrtinfo";
    public static final String AGNTER_INFO = "agnterinfo";

    @ApiModelProperty("就诊信息mdtrtinfo")
    private MdTrtInfo mdTrtInfo;


    @ApiModelProperty("代办人信息agnterinfo")
    private AgnterInfo agnterInfo;

    @Data
    @NoArgsConstructor
    @Accessors(chain = true)
    @ApiModel("就诊信息mdtrtinfo")
    public static class MdTrtInfo {
        /**
         * 1.	psn_no	人员编号	字符型	30		Y
         */
        @ApiModelProperty("人员编号")
        private String psn_no;

        /**
         * 2.	insutype	险种类型	字符型	30	Y	Y	调用1901字典表下载
         */
        @ApiModelProperty("险种类型")
        private String insutype;

        /**
         * 3.	mdtrt_cert_type	就诊凭证类型	字符型	3	Y	Y	调用1901字典表下载
         */
        @ApiModelProperty("就诊凭证类型")
        private String mdtrt_cert_type;

        /**
         * 4.	mdtrt_cert_no	就诊凭证编号	字符型	50
         * 就诊凭证类型为 “01”时填写电子凭 证令牌，为“02”时填写身份证号，为 “03”时填写社会保障卡卡号
         */
        @ApiModelProperty("就诊凭证编号")
        private String mdtrt_cert_no;

        /**
         * 5.	hcard_basinfo	持卡就诊基本信息	字符	4000			刷卡就医时必填
         */
        @ApiModelProperty("持卡就诊基本信息")
        private String hcard_basinfo;

        /**
         * 6.	hcard_chkinfo	持卡就诊校验信息	字符	4000			刷卡就医时必填
         */
        @ApiModelProperty("持卡就诊校验信息")
        private String hcard_chkinfo;

        /**
         * 7.	begntime 	开始时间 	时间型 	   	   	Y 	挂号时间yyyy-MM-dd HH:mm:ss
         */
        @ApiModelProperty("开始时间")
        private String begntime;

        /**
         * 8.	ipt_otp_no	住院/门诊号	字符型	30		Y	院内惟一流水号
         */
        @ApiModelProperty("住院/门诊号")
        private String ipt_otp_no;

        /**
         * 9.	dept_code	科室编码	字符型	30		Y
         */
        @ApiModelProperty("科室编码")
        private String dept_code;

        /**
         * 10.	dept_name	科室名称	字符型	100		Y
         */
        @ApiModelProperty("科室名称")
        private String dept_name;

        /**
         * 11.	atddr_no	医师编码	字符型	30		Y
         */
        @ApiModelProperty("医师编码")
        private String atddr_no;

        /**
         * 12.	dr_name	医师姓名	字符型	50		Y
         */
        @ApiModelProperty("医师姓名")
        private String dr_name;

        /**
         * 13.	caty	科别	字符型	6	Y	Y	见码表 DEPT
         */
        @ApiModelProperty("科别")
        private String caty;
    }

    @Data
    @NoArgsConstructor
    @Accessors(chain = true)
    @ApiModel("代办人信息agnterinfo")
    public static class AgnterInfo {

        /**
         * 1.	agnter_name	代办人姓名	字符型	30		Y
         */
        @ApiModelProperty("代办人姓名")
        private String agnter_name;

        /**
         * 2.	agnter_rlts	代办人关系	字符型	3	Y	Y	调用1901字典表下载
         */
        @ApiModelProperty("代办人关系")
        private String agnter_rlts;

        /**
         * 3.	agnter_cert_type	代办人证件类型	字符型	6	Y	Y	见人员证件类型码表（psn_cert_type）
         */
        @ApiModelProperty("代办人证件类型")
        private String agnter_cert_type;

        /**
         * 4.	agnter_certno	代办人证件号码	字符型	30		Y
         */
        @ApiModelProperty("代办人证件号码")
        private String agnter_certno;

        /**
         * 5.	agnter_tel	代办人联系电话	字符型	30		Y
         */
        @ApiModelProperty("代办人联系电话")
        private String agnter_tel;

        /**
         * 6.	agnter_addr	代办人联系地址	字符型	200
         */
        @ApiModelProperty("代办人联系地址")
        private String agnter_addr;

        /**
         * 7.	agnter_photo	代办人照片	字符型				Base64文件流
         */
        @ApiModelProperty("代办人照片")
        private String agnter_photo;
    }

    @Data
    @NoArgsConstructor
    @ApiModel("结果data")
    public static class Output {

        /**
         * 1.	mdtrt_id	就诊ID	字符型	30		Y	作为后续流程对应医保业务的唯一标识。
         */
        @ApiModelProperty("就诊ID")
        private String mdtrt_id;

        /**
         * 2.	vola_type	违规类型	字符型	6	Y		01-医师违规
         */
        @ApiModelProperty("违规类型")
        private String vola_type;

        /**
         * 3.	vola_dscr	违规说明	字符型	1000		Y
         */
        @ApiModelProperty("违规说明")
        private String vola_dscr;

        /**
         * 4.	psn_no 	人员编号 	字符型 	30 	   	Y
         */
        @ApiModelProperty("人员编号")
        private String psn_no;

        /**
         * 5.	ipt_otp_no 	住院/门诊号 	字符型 	30 	   	Y   	院内唯一流水
         */
        @ApiModelProperty("住院/门诊号")
        private String ipt_otp_no;

        /**
         * 6.	memo 	备注 	字符型 	500
         */
        @ApiModelProperty("备注")
        private String memo;
    }

}
